home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / metkit / discat.cpp < prev    next >
C/C++ Source or Header  |  1997-06-07  |  3KB  |  98 lines

  1. //    Copyright (C) 1996, 1997 Meta Four Software.  All rights reserved.
  2. //
  3. //  Disk catalog sample code
  4. //
  5. //! rev="$Id: discat.cpp,v 1.3 1997/05/27 00:06:36 jcw Rel $"
  6.  
  7. #include "stdafx.h"
  8. #include "discat.h"
  9. #include "catalog.h"
  10.  
  11. CMyApp ThisApp;     // the global application object
  12.  
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CMyApp
  15.  
  16. BOOL CMyApp::InitInstance()
  17. {
  18.     CMainDlgWindow mainDlg;
  19.     m_pMainWnd = &mainDlg;
  20.     mainDlg.DoModal();
  21.  
  22.     return FALSE;
  23. }
  24.  
  25. /////////////////////////////////////////////////////////////////////////////
  26. // CMainDlgWindow
  27.  
  28. BEGIN_MESSAGE_MAP(CMainDlgWindow, CDialog)
  29.     //{{AFX_MSG_MAP(CMainDlgWindow)
  30.     ON_BN_CLICKED(IDC_SCAN_BTN, OnScanBtn)
  31.     //}}AFX_MSG_MAP
  32. END_MESSAGE_MAP()
  33.  
  34. /////////////////////////////////////////////////////////////////////////////
  35.  
  36. CMainDlgWindow::CMainDlgWindow()
  37.     : CDialog (CMainDlgWindow::IDD)
  38. {
  39.     //{{AFX_DATA_INIT(CMainDlgWindow)
  40.     //}}AFX_DATA_INIT
  41. }
  42.  
  43. void CMainDlgWindow::DoDataExchange(CDataExchange* pDX)
  44. {
  45.     CDialog::DoDataExchange(pDX);
  46.     //{{AFX_DATA_MAP(CMainDlgWindow)
  47.     DDX_Control(pDX, IDC_PATH, m_path);
  48.     DDX_Control(pDX, IDC_STATUS, m_status);
  49.     //}}AFX_DATA_MAP
  50. }
  51.  
  52. /////////////////////////////////////////////////////////////////////////////
  53. // [JCW]  This code added for MetaKit DISCAT
  54.  
  55. BOOL CMainDlgWindow::OnInitDialog() 
  56. {
  57.     CDialog::OnInitDialog();
  58.  
  59.         // use the application directory as the default scan path
  60.     CString appDir = ThisApp.m_pszHelpFilePath;
  61.     int n = appDir.ReverseFind('\\');
  62.     if (n >= 0)
  63.         m_path.SetWindowText(appDir.Left(n));
  64.     
  65.     return TRUE;  // return TRUE unless you set the focus to a control
  66. }
  67.  
  68. void CMainDlgWindow::OnScanBtn() 
  69. {
  70.         // find out which directory we should scan
  71.     CString path;
  72.     m_path.GetWindowText(path);
  73.     if (path.Right(1) == '\\')
  74.         path = path.Left(path.GetLength() - 1);
  75.  
  76.         // indicate what is going on
  77.     m_status.SetWindowText("Scanning, please wait...");
  78.  
  79.         // scan the directory tree, see CATALOG.CPP
  80.     c4_View dirs = fScanDirectories(path);
  81.     
  82.         // show what happened
  83.     char buf [30];
  84.     wsprintf(buf, "%d directories were scanned.", dirs.GetSize());
  85.     m_status.SetWindowText(buf);
  86.     
  87.         // save results to file
  88.     CFileDialog dlg (FALSE, NULL, "dirs");
  89.     if (dlg.DoModal() == IDOK)
  90.     {
  91.         c4_Storage storage (dlg.GetPathName(), true);
  92.         storage.Store("dirs", dirs);
  93.         storage.Commit();
  94.     }
  95. }  
  96.  
  97. /////////////////////////////////////////////////////////////////////////////
  98.